package design.singleDesign;
//懒汉单例模式普通写法
public class LazySingleDesign {
    //首先构造方法私有化
    private LazySingleDesign (){};
    //其次声明属性
    public volatile static LazySingleDesign singleDestory=null;
    //具体实例化方法
    public LazySingleDesign newInstance(){
        //逻辑，首先看是不是为空，为空继续，本线程独自进行，判定是不是为空，这个时候可能被其他的方法通过反射创建，
        // 所以判断一下，最后创建

        if(null==singleDestory){
            synchronized (LazySingleDesign.class){
                if(null==singleDestory){
                    return new LazySingleDesign();
                }
            }
        }
        return null;
    }
}
